MacBox
Volume Number: 4
Issue Number: 5
Column Tag: Mac Hardware
MacBox and the Serial Sermon
By Rev. Willis, MacFugNews
Once upon a time in a galaxy far, far away...a humble servant of Big Byte took
upon himself the serial expansion of the blessed Mac. However, before enlightenment
was acheived, much wisdom had to be revealed unto and understood by the humble
servant. In fact, much self-flagellation, usually with an RS-232 cable, was necessary
to gain the wisdom needed to successfully expand the Mac’s serial ports.
All hi-tech parables aside, my travail resulted from the desire to have my Mac
talk to my modem, an X-10 Powerhouse appliance controller and a Radio Shack Model
100 portable computer, and do so without going through a cable swapping boog-a-loo.
This was accomplished with an inexpensive switch and some simple wiring. I’ve
included some pictures and diagrams to help the more ambitious (and cheap, Mac
switch boxes are commercially available) of you duplicate the task.
Excluding the SCSI port and the second disc drive port, the Mac talks to the world
through two serial ports. One of these serial ports is usually configured through the
Chooser software to talk to the Imagewriter. The other port can be configured by
Chooser as an Appletalk connection, or, using communications software such as Red
Ryder, as a modem port. Also, using an adaptor box and MIDI software, these serial
ports can talk to musical instruments such as a DX-7 sythesizer. Finally, one of these
ports can be used to talk directly to another computer without the modem/phone line
connection assuming both machines are in close proximity. Some computers, such as
the Incredibly Bad Machine and the Model 100, normally talk to printers through a
parallel port; however, the Imagewriter/Mac combo do it serially.
The RS-232 data communications standard is used by most personal computer
systems for data transfer. There is also Ethernet, Appletalk and others, but we’re
talking proletarian stuff here, not big-time University networking. The Mac uses an
improvement of the RS-232 standard called RS-422. This improvement allows for
longer cable lengths to carry digital data, necessary for Appletalk networks.
Thankfully, RS-422 and RS-232 protocols are generally compatible. The RS-232
standard defines the DB-25 connector pinouts (check the diagrams included) as well as
describes data terminal equipment (DTE) sending digital information to data
communications equipment (DCE) over an analog phone line to another DCE-DTE combo
(digital data poops out after 100 feet or so and must be converted to an analog signal
for the long haul). DTEs are usually computers, while DCEs are modems. They are
connected with straight cables, that is, the TXD pin on the DTE is connected to the same
TXD pin on the DCE. The internal wiring of the equipment makes sure everthing is
copesetic. The DTE/DCE pairs use software handshaking to control the communications
connection, usually XON/XOFF protocol. If one pair wants to pause communications, it
issues a little ASCII data code ,Control Q, to tell the other pair to stop transmitting; a
Control S resumes communications. If you ever used Red Ryder to access Compu$erve
or Genie, you may have used the Q and S radio buttons to control the information
zipping across the screen at a rate faster than you can read it.
However, as occurs with all good standards, they get modified to accomplish new
tasks. A problem arises when two computers are hooked back-to-back with no
modem/phone link inbetween. Now you have a DTE-DTE link which confuses the signal
lines on the interconnection cable. So you need a cross or “null” cable to connect the
equipment. In such a cable, the TXD pin from one DTE goes to the RXD pin of the other
DTE, and vice versa. If these DTE-DTE combos are a back-to-back computer pair,
they usually use a form of software handshaking. However, if a computer is talking to
a printer (which usually acts as a DTE), then they may use a form of hardware
handshaking: two control lines are crossed and the pins toggled with a logic “Hi” to
indicate the DTEs are ready to communicate. If one DTE toggles its control pin “Lo”,
communications are paused until the pin is again toggled “Hi”. The control lines
usually link the RTS-CTS or DTR-DSR pins. In the case of the Mac and the
Imagewriter, the handshaking lines are CTS-DTR. If the IMW needs to pause, the “Hi”
on its DTR pin goes “Lo”; the Mac detects this new condition on its CTS pin and stops
sending data until its CTS pin is toggled “Hi” again. Got it?
Another problem, and a further bastardization of the RS-232 standard, occurs
when two DTEs want to talk to each other using software (XON/XOFF) handshaking but
have pins on their serial ports that are expecting hardware handshaking. This
situation requires the old “fake-out” handshaking method. Pins that are normally
“Hi” are jumpered to the pins that expect a “Hi” before they will allow data
transmission to begin. RS-232 cables for the IBM are notorious for this and require
jumpering several pins to get the serial port to work. Usually, the normally “Hi”
RTS pin is jumpered to the normally “Lo” CTS pin, while the normally “HI” DTR pin
is jumpered to both DSR and CD. This “fake-out” method is very common in situations
where multi-conductor cable is not available or where the exact method of hardware
handshaking is not known. All in all, the RS-232 standard has become a very
unstandard standard.
Anyway, enough sermonizing and on to some constuction details for the ultimate
in Mac serial port switching...MACBOX!!! The first detail that needed to be resolved
was the 8-pin miniDIN socket used by the newer Macs. The required plugs are
impossible to find and wouldn’t work well panel mounted into a box. Since my Mac was
an updated 512 machine, I had a couple miniDIN to DB-9 adaptor cables that I extended
to reach MacBox. Panel mount DB-9s are readily available, so I used two male DB-9s
as inputs from the Mac and four female DB-9s as outputs to peripherals. Note when
wiring the pins that they are numbered in opposite directions on the male and female
connectors (I didn’t). The protective and signal grounds are now tied together within
the Mac, so only three wires are normally needed to connect serial devices. I included
a handshaking line since it was wired that way in my modem cable and is needed for the
IMW (the other devices handshake through software XON/XOFF).
Initially everything worked great until I decided to get the M100 to talk to the
IMW. First of all, the M100 usually talks to printers through a parallel port.
Thankfully, the built-in BASIC accesses the serial port. Also, I have SuperRom
installed in my M100 which contains a word processor that accesses the serial port.
So, another switch and a little more wiring later, I was soon printing away on the IMW
from the M100...sort of. After about a page of data, everything would turn to garbage.
Obviously I was overloading the IMW’s input buffer, no amount of toggling the IMW’s
DTR pin was shutting off the M100 from continuing to send data. I soon discovered that
while the handshaking pins were active on the M100, there was no firmware (ROM
routines) to recognize hardware handshaking. About then Big Byte stepped in and
handed me a set of golden tablets containing a M100 mod that would give the M100
adequate hardware handshaking. The mod details involved the piggybacking of a quad
nand gate chip inside the M100 to use the DSR line to read the IMW’s DTR line. To be
more consistent to the Mac’s way of doing things, I could have easily use the CTS line
instead. (See references below)
Soon the M100-IMW connection was yakking away with no problems...except now
the M100 wasn’t talking to the Mac. I soon realized that I needed to run another wire
from the Mac’s DTR pin to the M100 DSR pin to “fake out” the M100 even though it
was talking to the Mac using software handshaking. Tracing the wiring in the
accompanying diagram should reveal the necessary connections.
References:
MacAccess, Hayden Books,1987
Understanding Data Com., TI Library
Imagewriter II Owner’s Manual
Portable 100 Magazine, 12/87
Modern Electronics Magazine, 5/86